I hereby acknowledge that the submitted assignment is my own work. During the preparation of this assignment I have worked together with Max Mohr and Felix Koehn.
This document is also available in this GitHub repository.
GET request, that searches for event venues in Germany (countryCode = "DE"). Extract the content from the response object and inspect the resulting list. Describe what you can see.# load libraries
library(httr)
library(tidyverse)
library(rlist)
library(kableExtra)
# function to display a data frame more appealingly
print_df <- function(df, n = 10, scrollbox = FALSE) {
# styling
df_formatted <- df %>%
head(n = n) %>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"))
# scrollbox
if (scrollbox) {
df_formatted <- df_formatted %>%
scroll_box(width = "100%")
}
# show data frame
df_formatted
}
# get API key
apikey <- readLines("ticketmaster_api_key.txt", warn = FALSE)
# url for venues
url <- "https://app.ticketmaster.com/discovery/v2/venues"
# define params for API call
params <- list(apikey = apikey, countryCode = "DE", locale = "*")
# get response from API and extract content
venues_DE_first_page <- GET(url = url, query = params) %>% content()
# show response
venues_DE_first_page
## $`_embedded`
## $`_embedded`$venues
## $`_embedded`$venues[[1]]
## $`_embedded`$venues[[1]]$name
## [1] "Grosse Freiheit 36"
##
## $`_embedded`$venues[[1]]$type
## [1] "venue"
##
## $`_embedded`$venues[[1]]$id
## [1] "KovZpZAn6vEA"
##
## $`_embedded`$venues[[1]]$test
## [1] FALSE
##
## $`_embedded`$venues[[1]]$url
## [1] "http://www.ticketmaster.de/venue/287636"
##
## $`_embedded`$venues[[1]]$locale
## [1] "en-de"
##
## $`_embedded`$venues[[1]]$images
## $`_embedded`$venues[[1]]$images[[1]]
## $`_embedded`$venues[[1]]$images[[1]]$ratio
## [1] "16_9"
##
## $`_embedded`$venues[[1]]$images[[1]]$url
## [1] "https://s1.ticketm.net/dbimages/962v."
##
## $`_embedded`$venues[[1]]$images[[1]]$width
## [1] 205
##
## $`_embedded`$venues[[1]]$images[[1]]$height
## [1] 115
##
## $`_embedded`$venues[[1]]$images[[1]]$fallback
## [1] FALSE
##
##
##
## $`_embedded`$venues[[1]]$postalCode
## [1] "22767"
##
## $`_embedded`$venues[[1]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[1]]$city
## $`_embedded`$venues[[1]]$city$name
## [1] "Hamburg"
##
##
## $`_embedded`$venues[[1]]$country
## $`_embedded`$venues[[1]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[1]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[1]]$address
## $`_embedded`$venues[[1]]$address$line1
## [1] "Grosse Freiheit 36"
##
##
## $`_embedded`$venues[[1]]$location
## $`_embedded`$venues[[1]]$location$longitude
## [1] "9.957905"
##
## $`_embedded`$venues[[1]]$location$latitude
## [1] "53.551187"
##
##
## $`_embedded`$venues[[1]]$markets
## $`_embedded`$venues[[1]]$markets[[1]]
## $`_embedded`$venues[[1]]$markets[[1]]$name
## [1] "Germany"
##
## $`_embedded`$venues[[1]]$markets[[1]]$id
## [1] "210"
##
##
##
## $`_embedded`$venues[[1]]$dmas
## $`_embedded`$venues[[1]]$dmas[[1]]
## $`_embedded`$venues[[1]]$dmas[[1]]$id
## [1] 610
##
##
##
## $`_embedded`$venues[[1]]$boxOfficeInfo
## $`_embedded`$venues[[1]]$boxOfficeInfo$phoneNumberDetail
## [1] "Telefon tagsüber: (040) 31 77 78- 0 Große Freiheit 36 22767 Hamburg E-Mail: info@grossefreiheit36.de"
##
##
## $`_embedded`$venues[[1]]$upcomingEvents
## $`_embedded`$venues[[1]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[1]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[1]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[1]]$ada
## $`_embedded`$venues[[1]]$ada$adaPhones
## [1] "+49.(0)1805 - 969 0000 (14 Ct./Min.)"
##
## $`_embedded`$venues[[1]]$ada$adaCustomCopy
## [1] "Sollten Sie besondere Sitzplatzwünsche haben, prüfen Sie bitte die Informationsseite des Veranstaltungsortes. Für weitergehende Informationen steht Ihnen unsere Hotline unter +49.(0)1805 - 969 0000 (14 Ct./Min.) zur Verfügung."
##
## $`_embedded`$venues[[1]]$ada$adaHours
## [1] "Montag bis Freitag, in der Zeit von 9.00-19.00 Uhr sowie sonnabends von 10.00-18.00 Uhr zur Verfügung."
##
##
## $`_embedded`$venues[[1]]$`_links`
## $`_embedded`$venues[[1]]$`_links`$self
## $`_embedded`$venues[[1]]$`_links`$self$href
## [1] "/discovery/v2/venues/KovZpZAn6vEA?locale=en-de"
##
##
##
##
## $`_embedded`$venues[[2]]
## $`_embedded`$venues[[2]]$name
## [1] "Gruenspan"
##
## $`_embedded`$venues[[2]]$type
## [1] "venue"
##
## $`_embedded`$venues[[2]]$id
## [1] "KovZpZAneakA"
##
## $`_embedded`$venues[[2]]$test
## [1] FALSE
##
## $`_embedded`$venues[[2]]$url
## [1] "http://www.ticketmaster.de/venue/287155"
##
## $`_embedded`$venues[[2]]$locale
## [1] "en-de"
##
## $`_embedded`$venues[[2]]$images
## $`_embedded`$venues[[2]]$images[[1]]
## $`_embedded`$venues[[2]]$images[[1]]$ratio
## [1] "16_9"
##
## $`_embedded`$venues[[2]]$images[[1]]$url
## [1] "https://s1.ticketm.net/dbimages/2057v."
##
## $`_embedded`$venues[[2]]$images[[1]]$width
## [1] 205
##
## $`_embedded`$venues[[2]]$images[[1]]$height
## [1] 115
##
## $`_embedded`$venues[[2]]$images[[1]]$fallback
## [1] FALSE
##
##
##
## $`_embedded`$venues[[2]]$postalCode
## [1] "22767"
##
## $`_embedded`$venues[[2]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[2]]$city
## $`_embedded`$venues[[2]]$city$name
## [1] "Hamburg"
##
##
## $`_embedded`$venues[[2]]$country
## $`_embedded`$venues[[2]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[2]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[2]]$address
## $`_embedded`$venues[[2]]$address$line1
## [1] "Grosse Freiheit 58"
##
##
## $`_embedded`$venues[[2]]$location
## $`_embedded`$venues[[2]]$location$longitude
## [1] "9.958075"
##
## $`_embedded`$venues[[2]]$location$latitude
## [1] "53.551885"
##
##
## $`_embedded`$venues[[2]]$markets
## $`_embedded`$venues[[2]]$markets[[1]]
## $`_embedded`$venues[[2]]$markets[[1]]$name
## [1] "Germany"
##
## $`_embedded`$venues[[2]]$markets[[1]]$id
## [1] "210"
##
##
##
## $`_embedded`$venues[[2]]$dmas
## $`_embedded`$venues[[2]]$dmas[[1]]
## $`_embedded`$venues[[2]]$dmas[[1]]$id
## [1] 610
##
##
##
## $`_embedded`$venues[[2]]$boxOfficeInfo
## $`_embedded`$venues[[2]]$boxOfficeInfo$phoneNumberDetail
## [1] "Gruenspan Große Freiheit 58 22767 Hamburg Tel: 040-313616 mail: info@gruenspan.de web: www.gruenspan.de"
##
##
## $`_embedded`$venues[[2]]$upcomingEvents
## $`_embedded`$venues[[2]]$upcomingEvents$`_total`
## [1] 2
##
## $`_embedded`$venues[[2]]$upcomingEvents$`mfx-de`
## [1] 2
##
## $`_embedded`$venues[[2]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[2]]$ada
## $`_embedded`$venues[[2]]$ada$adaPhones
## [1] "+49.(0)1805 - 969 0000 (14 Ct./Min.)"
##
## $`_embedded`$venues[[2]]$ada$adaCustomCopy
## [1] "Sollten Sie besondere Sitzplatzwünsche haben, prüfen Sie bitte die Informationsseite des Veranstaltungsortes. Für weitergehende Informationen steht Ihnen unsere Hotline unter +49.(0)1805 - 969 0000 (14 Ct./Min.) zur Verfügung."
##
## $`_embedded`$venues[[2]]$ada$adaHours
## [1] "Montag bis Freitag, in der Zeit von 9.00-19.00 Uhr sowie sonnabends von 10.00-18.00 Uhr zur Verfügung."
##
##
## $`_embedded`$venues[[2]]$`_links`
## $`_embedded`$venues[[2]]$`_links`$self
## $`_embedded`$venues[[2]]$`_links`$self$href
## [1] "/discovery/v2/venues/KovZpZAneakA?locale=en-de"
##
##
##
##
## $`_embedded`$venues[[3]]
## $`_embedded`$venues[[3]]$name
## [1] "Huxleys Neue Welt"
##
## $`_embedded`$venues[[3]]$type
## [1] "venue"
##
## $`_embedded`$venues[[3]]$id
## [1] "KovZpZAtnIJA"
##
## $`_embedded`$venues[[3]]$test
## [1] FALSE
##
## $`_embedded`$venues[[3]]$url
## [1] "http://www.ticketmaster.de/venue/286842"
##
## $`_embedded`$venues[[3]]$locale
## [1] "en-de"
##
## $`_embedded`$venues[[3]]$images
## $`_embedded`$venues[[3]]$images[[1]]
## $`_embedded`$venues[[3]]$images[[1]]$ratio
## [1] "16_9"
##
## $`_embedded`$venues[[3]]$images[[1]]$url
## [1] "https://s1.ticketm.net/dbimages/2146v.jpg"
##
## $`_embedded`$venues[[3]]$images[[1]]$width
## [1] 205
##
## $`_embedded`$venues[[3]]$images[[1]]$height
## [1] 115
##
## $`_embedded`$venues[[3]]$images[[1]]$fallback
## [1] FALSE
##
##
##
## $`_embedded`$venues[[3]]$postalCode
## [1] "10967"
##
## $`_embedded`$venues[[3]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[3]]$city
## $`_embedded`$venues[[3]]$city$name
## [1] "Berlin"
##
##
## $`_embedded`$venues[[3]]$country
## $`_embedded`$venues[[3]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[3]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[3]]$address
## $`_embedded`$venues[[3]]$address$line1
## [1] "Hasenheide 107 – 113"
##
##
## $`_embedded`$venues[[3]]$location
## $`_embedded`$venues[[3]]$location$longitude
## [1] "13.42138"
##
## $`_embedded`$venues[[3]]$location$latitude
## [1] "52.486391"
##
##
## $`_embedded`$venues[[3]]$markets
## $`_embedded`$venues[[3]]$markets[[1]]
## $`_embedded`$venues[[3]]$markets[[1]]$name
## [1] "Germany"
##
## $`_embedded`$venues[[3]]$markets[[1]]$id
## [1] "210"
##
##
##
## $`_embedded`$venues[[3]]$dmas
## $`_embedded`$venues[[3]]$dmas[[1]]
## $`_embedded`$venues[[3]]$dmas[[1]]$id
## [1] 610
##
##
##
## $`_embedded`$venues[[3]]$boxOfficeInfo
## $`_embedded`$venues[[3]]$boxOfficeInfo$phoneNumberDetail
## [1] "Huxleys Neue Welt Hasenheide 107-113 10967 Berlin Neukölln Tel 030 621 10 28"
##
##
## $`_embedded`$venues[[3]]$upcomingEvents
## $`_embedded`$venues[[3]]$upcomingEvents$`_total`
## [1] 9
##
## $`_embedded`$venues[[3]]$upcomingEvents$`mfx-de`
## [1] 9
##
## $`_embedded`$venues[[3]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[3]]$ada
## $`_embedded`$venues[[3]]$ada$adaPhones
## [1] "+49.(0)1805 - 969 0000 (14 Ct./Min.)"
##
## $`_embedded`$venues[[3]]$ada$adaCustomCopy
## [1] "Sollten Sie besondere Sitzplatzwünsche haben, prüfen Sie bitte die Informationsseite des Veranstaltungsortes. Für weitergehende Informationen steht Ihnen unsere Hotline unter +49.(0)1805 - 969 0000 (14 Ct./Min.) zur Verfügung."
##
## $`_embedded`$venues[[3]]$ada$adaHours
## [1] "Montag bis Freitag, in der Zeit von 9.00-19.00 Uhr sowie sonnabends von 10.00-18.00 Uhr zur Verfügung."
##
##
## $`_embedded`$venues[[3]]$`_links`
## $`_embedded`$venues[[3]]$`_links`$self
## $`_embedded`$venues[[3]]$`_links`$self$href
## [1] "/discovery/v2/venues/KovZpZAtnIJA?locale=en-de"
##
##
##
##
## $`_embedded`$venues[[4]]
## $`_embedded`$venues[[4]]$name
## [1] "Zentrum am Park"
##
## $`_embedded`$venues[[4]]$type
## [1] "venue"
##
## $`_embedded`$venues[[4]]$id
## [1] "Z598xZC2Z161k"
##
## $`_embedded`$venues[[4]]$test
## [1] FALSE
##
## $`_embedded`$venues[[4]]$url
## [1] "https://www.ticketmaster.de/venue/zentrum-am-park-emmelshausen-tickets/elszentrum/701"
##
## $`_embedded`$venues[[4]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[4]]$postalCode
## [1] "56281"
##
## $`_embedded`$venues[[4]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[4]]$city
## $`_embedded`$venues[[4]]$city$name
## [1] "Emmelshausen"
##
##
## $`_embedded`$venues[[4]]$country
## $`_embedded`$venues[[4]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[4]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[4]]$address
## $`_embedded`$venues[[4]]$address$line1
## [1] "Rhein-Mosel-Straße 45"
##
##
## $`_embedded`$venues[[4]]$location
## $`_embedded`$venues[[4]]$location$longitude
## [1] "7.55656"
##
## $`_embedded`$venues[[4]]$location$latitude
## [1] "50.15544"
##
##
## $`_embedded`$venues[[4]]$upcomingEvents
## $`_embedded`$venues[[4]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[4]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[4]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[4]]$`_links`
## $`_embedded`$venues[[4]]$`_links`$self
## $`_embedded`$venues[[4]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Z161k?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[5]]
## $`_embedded`$venues[[5]]$name
## [1] "Stadthalle (Theatersaal)"
##
## $`_embedded`$venues[[5]]$type
## [1] "venue"
##
## $`_embedded`$venues[[5]]$id
## [1] "Z598xZC2Z1aAF"
##
## $`_embedded`$venues[[5]]$test
## [1] FALSE
##
## $`_embedded`$venues[[5]]$url
## [1] "https://www.ticketmaster.de/venue/stadthalle-theatersaal--mulheim-tickets/mrustadtth/711"
##
## $`_embedded`$venues[[5]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[5]]$postalCode
## [1] "45479"
##
## $`_embedded`$venues[[5]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[5]]$city
## $`_embedded`$venues[[5]]$city$name
## [1] "Mülheim"
##
##
## $`_embedded`$venues[[5]]$country
## $`_embedded`$venues[[5]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[5]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[5]]$address
## $`_embedded`$venues[[5]]$address$line1
## [1] "Theodor-Heuss-Platz 1"
##
##
## $`_embedded`$venues[[5]]$location
## $`_embedded`$venues[[5]]$location$longitude
## [1] "6.87471"
##
## $`_embedded`$venues[[5]]$location$latitude
## [1] "51.42778"
##
##
## $`_embedded`$venues[[5]]$upcomingEvents
## $`_embedded`$venues[[5]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[5]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[5]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[5]]$`_links`
## $`_embedded`$venues[[5]]$`_links`$self
## $`_embedded`$venues[[5]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Z1aAF?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[6]]
## $`_embedded`$venues[[6]]$name
## [1] "Schlossgarten"
##
## $`_embedded`$venues[[6]]$type
## [1] "venue"
##
## $`_embedded`$venues[[6]]$id
## [1] "Z598xZC2Z6Fv7"
##
## $`_embedded`$venues[[6]]$test
## [1] FALSE
##
## $`_embedded`$venues[[6]]$url
## [1] "https://www.ticketmaster.de/venue/schlossgarten-bruchsal-tickets/bruparkanl/701"
##
## $`_embedded`$venues[[6]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[6]]$postalCode
## [1] "76646"
##
## $`_embedded`$venues[[6]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[6]]$city
## $`_embedded`$venues[[6]]$city$name
## [1] "Bruchsal"
##
##
## $`_embedded`$venues[[6]]$country
## $`_embedded`$venues[[6]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[6]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[6]]$address
## $`_embedded`$venues[[6]]$address$line1
## [1] "Schloss Bruchsal"
##
##
## $`_embedded`$venues[[6]]$location
## $`_embedded`$venues[[6]]$location$longitude
## [1] "8.59908"
##
## $`_embedded`$venues[[6]]$location$latitude
## [1] "49.12692"
##
##
## $`_embedded`$venues[[6]]$upcomingEvents
## $`_embedded`$venues[[6]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[6]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[6]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[6]]$`_links`
## $`_embedded`$venues[[6]]$`_links`$self
## $`_embedded`$venues[[6]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Z6Fv7?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[7]]
## $`_embedded`$venues[[7]]$name
## [1] "Stadthalle"
##
## $`_embedded`$venues[[7]]$type
## [1] "venue"
##
## $`_embedded`$venues[[7]]$id
## [1] "Z598xZC2Z6ve1"
##
## $`_embedded`$venues[[7]]$test
## [1] FALSE
##
## $`_embedded`$venues[[7]]$url
## [1] "https://www.ticketmaster.de/venue/stadthalle-hockenheim-tickets/hokstadtha/701"
##
## $`_embedded`$venues[[7]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[7]]$postalCode
## [1] "68766"
##
## $`_embedded`$venues[[7]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[7]]$city
## $`_embedded`$venues[[7]]$city$name
## [1] "Hockenheim"
##
##
## $`_embedded`$venues[[7]]$country
## $`_embedded`$venues[[7]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[7]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[7]]$address
## $`_embedded`$venues[[7]]$address$line1
## [1] "Rathausstraße 3"
##
##
## $`_embedded`$venues[[7]]$location
## $`_embedded`$venues[[7]]$location$longitude
## [1] "8.54908"
##
## $`_embedded`$venues[[7]]$location$latitude
## [1] "49.31849"
##
##
## $`_embedded`$venues[[7]]$upcomingEvents
## $`_embedded`$venues[[7]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[7]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[7]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[7]]$`_links`
## $`_embedded`$venues[[7]]$`_links`$self
## $`_embedded`$venues[[7]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Z6ve1?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[8]]
## $`_embedded`$venues[[8]]$name
## [1] "FZW"
##
## $`_embedded`$venues[[8]]$type
## [1] "venue"
##
## $`_embedded`$venues[[8]]$id
## [1] "Z598xZC2Z71ke"
##
## $`_embedded`$venues[[8]]$test
## [1] FALSE
##
## $`_embedded`$venues[[8]]$url
## [1] "https://www.ticketmaster.de/venue/fzw-dortmund-tickets/dorfzw/701"
##
## $`_embedded`$venues[[8]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[8]]$postalCode
## [1] "44263"
##
## $`_embedded`$venues[[8]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[8]]$city
## $`_embedded`$venues[[8]]$city$name
## [1] "Dortmund"
##
##
## $`_embedded`$venues[[8]]$country
## $`_embedded`$venues[[8]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[8]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[8]]$address
## $`_embedded`$venues[[8]]$address$line1
## [1] "Ritterstraße 20"
##
##
## $`_embedded`$venues[[8]]$location
## $`_embedded`$venues[[8]]$location$longitude
## [1] "7.4501"
##
## $`_embedded`$venues[[8]]$location$latitude
## [1] "51.51481"
##
##
## $`_embedded`$venues[[8]]$upcomingEvents
## $`_embedded`$venues[[8]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[8]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[8]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[8]]$`_links`
## $`_embedded`$venues[[8]]$`_links`$self
## $`_embedded`$venues[[8]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Z71ke?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[9]]
## $`_embedded`$venues[[9]]$name
## [1] "Arena Trier"
##
## $`_embedded`$venues[[9]]$type
## [1] "venue"
##
## $`_embedded`$venues[[9]]$id
## [1] "Z598xZC2ZAadk"
##
## $`_embedded`$venues[[9]]$test
## [1] FALSE
##
## $`_embedded`$venues[[9]]$url
## [1] "https://www.ticketmaster.de/venue/arena-trier-trier-tickets/triarena/701"
##
## $`_embedded`$venues[[9]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[9]]$postalCode
## [1] "54292"
##
## $`_embedded`$venues[[9]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[9]]$city
## $`_embedded`$venues[[9]]$city$name
## [1] "Trier"
##
##
## $`_embedded`$venues[[9]]$country
## $`_embedded`$venues[[9]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[9]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[9]]$address
## $`_embedded`$venues[[9]]$address$line1
## [1] "Fort-Worth-Platz 1"
##
##
## $`_embedded`$venues[[9]]$location
## $`_embedded`$venues[[9]]$location$longitude
## [1] "6.66426"
##
## $`_embedded`$venues[[9]]$location$latitude
## [1] "49.77183"
##
##
## $`_embedded`$venues[[9]]$upcomingEvents
## $`_embedded`$venues[[9]]$upcomingEvents$`_total`
## [1] 8
##
## $`_embedded`$venues[[9]]$upcomingEvents$`mfx-de`
## [1] 8
##
## $`_embedded`$venues[[9]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[9]]$`_links`
## $`_embedded`$venues[[9]]$`_links`$self
## $`_embedded`$venues[[9]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZAadk?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[10]]
## $`_embedded`$venues[[10]]$name
## [1] "Eissporthalle"
##
## $`_embedded`$venues[[10]]$type
## [1] "venue"
##
## $`_embedded`$venues[[10]]$id
## [1] "Z598xZC2ZFAk7"
##
## $`_embedded`$venues[[10]]$test
## [1] FALSE
##
## $`_embedded`$venues[[10]]$url
## [1] "https://www.ticketmaster.de/venue/eissporthalle-memmingen-tickets/mmmeisspor/701"
##
## $`_embedded`$venues[[10]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[10]]$postalCode
## [1] "87700"
##
## $`_embedded`$venues[[10]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[10]]$city
## $`_embedded`$venues[[10]]$city$name
## [1] "Memmingen"
##
##
## $`_embedded`$venues[[10]]$country
## $`_embedded`$venues[[10]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[10]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[10]]$address
## $`_embedded`$venues[[10]]$address$line1
## [1] "Hühnerbergstraße 19"
##
##
## $`_embedded`$venues[[10]]$location
## $`_embedded`$venues[[10]]$location$longitude
## [1] "10.16293"
##
## $`_embedded`$venues[[10]]$location$latitude
## [1] "47.97999"
##
##
## $`_embedded`$venues[[10]]$upcomingEvents
## $`_embedded`$venues[[10]]$upcomingEvents$`_total`
## [1] 3
##
## $`_embedded`$venues[[10]]$upcomingEvents$`mfx-de`
## [1] 3
##
## $`_embedded`$venues[[10]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[10]]$`_links`
## $`_embedded`$venues[[10]]$`_links`$self
## $`_embedded`$venues[[10]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZFAk7?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[11]]
## $`_embedded`$venues[[11]]$name
## [1] "Stadthalle Gersthofen"
##
## $`_embedded`$venues[[11]]$type
## [1] "venue"
##
## $`_embedded`$venues[[11]]$id
## [1] "Z598xZC2ZFAv7"
##
## $`_embedded`$venues[[11]]$test
## [1] FALSE
##
## $`_embedded`$venues[[11]]$url
## [1] "https://www.ticketmaster.de/venue/stadthalle-gersthofen-gersthofen-tickets/augstadtha/701"
##
## $`_embedded`$venues[[11]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[11]]$images
## $`_embedded`$venues[[11]]$images[[1]]
## $`_embedded`$venues[[11]]$images[[1]]$ratio
## [1] "16_9"
##
## $`_embedded`$venues[[11]]$images[[1]]$url
## [1] "https://media.ticketmaster.eu/germany/a0c2196cf724714be0e9c7631ca0859a.png"
##
## $`_embedded`$venues[[11]]$images[[1]]$width
## [1] 205
##
## $`_embedded`$venues[[11]]$images[[1]]$height
## [1] 115
##
## $`_embedded`$venues[[11]]$images[[1]]$fallback
## [1] FALSE
##
##
##
## $`_embedded`$venues[[11]]$postalCode
## [1] "86368"
##
## $`_embedded`$venues[[11]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[11]]$city
## $`_embedded`$venues[[11]]$city$name
## [1] "Gersthofen"
##
##
## $`_embedded`$venues[[11]]$country
## $`_embedded`$venues[[11]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[11]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[11]]$address
## $`_embedded`$venues[[11]]$address$line1
## [1] "Rathausplatz 2"
##
##
## $`_embedded`$venues[[11]]$location
## $`_embedded`$venues[[11]]$location$longitude
## [1] "10.87803"
##
## $`_embedded`$venues[[11]]$location$latitude
## [1] "48.42433"
##
##
## $`_embedded`$venues[[11]]$upcomingEvents
## $`_embedded`$venues[[11]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[11]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[11]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[11]]$`_links`
## $`_embedded`$venues[[11]]$`_links`$self
## $`_embedded`$venues[[11]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZFAv7?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[12]]
## $`_embedded`$venues[[12]]$name
## [1] "Feierwerk (Kranhalle)"
##
## $`_embedded`$venues[[12]]$type
## [1] "venue"
##
## $`_embedded`$venues[[12]]$id
## [1] "Z598xZC2ZFdee"
##
## $`_embedded`$venues[[12]]$test
## [1] FALSE
##
## $`_embedded`$venues[[12]]$url
## [1] "https://www.ticketmaster.de/venue/feierwerk-kranhalle--munchen-tickets/muefeierwk/701"
##
## $`_embedded`$venues[[12]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[12]]$postalCode
## [1] "81373"
##
## $`_embedded`$venues[[12]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[12]]$city
## $`_embedded`$venues[[12]]$city$name
## [1] "Munich"
##
##
## $`_embedded`$venues[[12]]$country
## $`_embedded`$venues[[12]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[12]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[12]]$address
## $`_embedded`$venues[[12]]$address$line1
## [1] "Hansastraße 39-41"
##
##
## $`_embedded`$venues[[12]]$location
## $`_embedded`$venues[[12]]$location$longitude
## [1] "11.53389"
##
## $`_embedded`$venues[[12]]$location$latitude
## [1] "48.12914"
##
##
## $`_embedded`$venues[[12]]$upcomingEvents
## $`_embedded`$venues[[12]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[12]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[12]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[12]]$`_links`
## $`_embedded`$venues[[12]]$`_links`$self
## $`_embedded`$venues[[12]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZFdee?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[13]]
## $`_embedded`$venues[[13]]$name
## [1] "Feierwerk (Hansa 39)"
##
## $`_embedded`$venues[[13]]$type
## [1] "venue"
##
## $`_embedded`$venues[[13]]$id
## [1] "Z598xZC2ZFdek"
##
## $`_embedded`$venues[[13]]$test
## [1] FALSE
##
## $`_embedded`$venues[[13]]$url
## [1] "https://www.ticketmaster.de/venue/feierwerk-hansa-39--munchen-tickets/muehansane/701"
##
## $`_embedded`$venues[[13]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[13]]$postalCode
## [1] "81373"
##
## $`_embedded`$venues[[13]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[13]]$city
## $`_embedded`$venues[[13]]$city$name
## [1] "Munich"
##
##
## $`_embedded`$venues[[13]]$country
## $`_embedded`$venues[[13]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[13]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[13]]$address
## $`_embedded`$venues[[13]]$address$line1
## [1] "Hansastraße 39-41"
##
##
## $`_embedded`$venues[[13]]$location
## $`_embedded`$venues[[13]]$location$longitude
## [1] "11.53389"
##
## $`_embedded`$venues[[13]]$location$latitude
## [1] "48.12914"
##
##
## $`_embedded`$venues[[13]]$upcomingEvents
## $`_embedded`$venues[[13]]$upcomingEvents$`_total`
## [1] 2
##
## $`_embedded`$venues[[13]]$upcomingEvents$`mfx-de`
## [1] 2
##
## $`_embedded`$venues[[13]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[13]]$`_links`
## $`_embedded`$venues[[13]]$`_links`$self
## $`_embedded`$venues[[13]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZFdek?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[14]]
## $`_embedded`$venues[[14]]$name
## [1] "Burghof - STIMMEN-Festival"
##
## $`_embedded`$venues[[14]]$type
## [1] "venue"
##
## $`_embedded`$venues[[14]]$id
## [1] "Z598xZC2ZFvA1"
##
## $`_embedded`$venues[[14]]$test
## [1] FALSE
##
## $`_embedded`$venues[[14]]$url
## [1] "https://www.ticketmaster.de/venue/burghof-stimmen-festival-lorrach-tickets/loeburghof/701"
##
## $`_embedded`$venues[[14]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[14]]$postalCode
## [1] "79539"
##
## $`_embedded`$venues[[14]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[14]]$city
## $`_embedded`$venues[[14]]$city$name
## [1] "Lörrach"
##
##
## $`_embedded`$venues[[14]]$country
## $`_embedded`$venues[[14]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[14]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[14]]$address
## $`_embedded`$venues[[14]]$address$line1
## [1] "Herrenstraße 5"
##
##
## $`_embedded`$venues[[14]]$location
## $`_embedded`$venues[[14]]$location$longitude
## [1] "7.65919"
##
## $`_embedded`$venues[[14]]$location$latitude
## [1] "47.61109"
##
##
## $`_embedded`$venues[[14]]$upcomingEvents
## $`_embedded`$venues[[14]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[14]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[14]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[14]]$`_links`
## $`_embedded`$venues[[14]]$`_links`$self
## $`_embedded`$venues[[14]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZFvA1?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[15]]
## $`_embedded`$venues[[15]]$name
## [1] "Schiesssportanlage"
##
## $`_embedded`$venues[[15]]$type
## [1] "venue"
##
## $`_embedded`$venues[[15]]$id
## [1] "Z598xZC2Zakke"
##
## $`_embedded`$venues[[15]]$test
## [1] FALSE
##
## $`_embedded`$venues[[15]]$url
## [1] "https://www.ticketmaster.de/venue/schiesssportanlage-neu-wulmstorf-tickets/nwuschiess/701"
##
## $`_embedded`$venues[[15]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[15]]$postalCode
## [1] "21629"
##
## $`_embedded`$venues[[15]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[15]]$city
## $`_embedded`$venues[[15]]$city$name
## [1] "Neu Wulmstorf"
##
##
## $`_embedded`$venues[[15]]$country
## $`_embedded`$venues[[15]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[15]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[15]]$address
## $`_embedded`$venues[[15]]$address$line1
## [1] "Wesenberg 1"
##
##
## $`_embedded`$venues[[15]]$location
## $`_embedded`$venues[[15]]$location$longitude
## [1] "9.79941"
##
## $`_embedded`$venues[[15]]$location$latitude
## [1] "53.45047"
##
##
## $`_embedded`$venues[[15]]$upcomingEvents
## $`_embedded`$venues[[15]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[15]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[15]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[15]]$`_links`
## $`_embedded`$venues[[15]]$`_links`$self
## $`_embedded`$venues[[15]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Zakke?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[16]]
## $`_embedded`$venues[[16]]$name
## [1] "WUNDERINO ARENA"
##
## $`_embedded`$venues[[16]]$type
## [1] "venue"
##
## $`_embedded`$venues[[16]]$id
## [1] "Z598xZC2Zd7v1"
##
## $`_embedded`$venues[[16]]$test
## [1] FALSE
##
## $`_embedded`$venues[[16]]$url
## [1] "https://www.ticketmaster.de/venue/wunderino-arena-kiel-tickets/kiesparkas/701"
##
## $`_embedded`$venues[[16]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[16]]$postalCode
## [1] "24103"
##
## $`_embedded`$venues[[16]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[16]]$city
## $`_embedded`$venues[[16]]$city$name
## [1] "Kiel"
##
##
## $`_embedded`$venues[[16]]$country
## $`_embedded`$venues[[16]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[16]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[16]]$address
## $`_embedded`$venues[[16]]$address$line1
## [1] "Europaplatz 1"
##
##
## $`_embedded`$venues[[16]]$location
## $`_embedded`$venues[[16]]$location$longitude
## [1] "10.13139"
##
## $`_embedded`$venues[[16]]$location$latitude
## [1] "54.32057"
##
##
## $`_embedded`$venues[[16]]$upcomingEvents
## $`_embedded`$venues[[16]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[16]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[16]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[16]]$`_links`
## $`_embedded`$venues[[16]]$`_links`$self
## $`_embedded`$venues[[16]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Zd7v1?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[17]]
## $`_embedded`$venues[[17]]$name
## [1] "Stadtpark Open Air"
##
## $`_embedded`$venues[[17]]$type
## [1] "venue"
##
## $`_embedded`$venues[[17]]$id
## [1] "Z598xZC2Ze11e"
##
## $`_embedded`$venues[[17]]$test
## [1] FALSE
##
## $`_embedded`$venues[[17]]$url
## [1] "https://www.ticketmaster.de/venue/stadtpark-open-air-hamburg-tickets/hamstadtpf/701"
##
## $`_embedded`$venues[[17]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[17]]$postalCode
## [1] "22303"
##
## $`_embedded`$venues[[17]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[17]]$city
## $`_embedded`$venues[[17]]$city$name
## [1] "Hamburg"
##
##
## $`_embedded`$venues[[17]]$country
## $`_embedded`$venues[[17]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[17]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[17]]$address
## $`_embedded`$venues[[17]]$address$line1
## [1] "Saarlandstraße / Ecke Jahnring"
##
##
## $`_embedded`$venues[[17]]$location
## $`_embedded`$venues[[17]]$location$longitude
## [1] "10.0295"
##
## $`_embedded`$venues[[17]]$location$latitude
## [1] "53.60036"
##
##
## $`_embedded`$venues[[17]]$upcomingEvents
## $`_embedded`$venues[[17]]$upcomingEvents$`_total`
## [1] 3
##
## $`_embedded`$venues[[17]]$upcomingEvents$`mfx-de`
## [1] 3
##
## $`_embedded`$venues[[17]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[17]]$`_links`
## $`_embedded`$venues[[17]]$`_links`$self
## $`_embedded`$venues[[17]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Ze11e?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[18]]
## $`_embedded`$venues[[18]]$name
## [1] "Laeiszhalle (Großer Saal)"
##
## $`_embedded`$venues[[18]]$type
## [1] "venue"
##
## $`_embedded`$venues[[18]]$id
## [1] "Z598xZC2Ze6ek"
##
## $`_embedded`$venues[[18]]$test
## [1] FALSE
##
## $`_embedded`$venues[[18]]$url
## [1] "https://www.ticketmaster.de/venue/laeiszhalle-grosser-saal--hamburg-tickets/hamlaieszg/701"
##
## $`_embedded`$venues[[18]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[18]]$postalCode
## [1] "20355"
##
## $`_embedded`$venues[[18]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[18]]$city
## $`_embedded`$venues[[18]]$city$name
## [1] "Hamburg"
##
##
## $`_embedded`$venues[[18]]$country
## $`_embedded`$venues[[18]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[18]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[18]]$address
## $`_embedded`$venues[[18]]$address$line1
## [1] "Johannes-Brahms-Platz"
##
##
## $`_embedded`$venues[[18]]$location
## $`_embedded`$venues[[18]]$location$longitude
## [1] "9.98061"
##
## $`_embedded`$venues[[18]]$location$latitude
## [1] "53.55538"
##
##
## $`_embedded`$venues[[18]]$upcomingEvents
## $`_embedded`$venues[[18]]$upcomingEvents$`_total`
## [1] 2
##
## $`_embedded`$venues[[18]]$upcomingEvents$`mfx-de`
## [1] 2
##
## $`_embedded`$venues[[18]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[18]]$`_links`
## $`_embedded`$venues[[18]]$`_links`$self
## $`_embedded`$venues[[18]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Ze6ek?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[19]]
## $`_embedded`$venues[[19]]$name
## [1] "Friedrich-Ebert-Halle"
##
## $`_embedded`$venues[[19]]$type
## [1] "venue"
##
## $`_embedded`$venues[[19]]$id
## [1] "Z598xZC2Zeadk"
##
## $`_embedded`$venues[[19]]$test
## [1] FALSE
##
## $`_embedded`$venues[[19]]$url
## [1] "https://www.ticketmaster.de/venue/friedrich-ebert-halle-hamburg-tickets/hamfriedri/701"
##
## $`_embedded`$venues[[19]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[19]]$postalCode
## [1] "21075"
##
## $`_embedded`$venues[[19]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[19]]$city
## $`_embedded`$venues[[19]]$city$name
## [1] "Hamburg"
##
##
## $`_embedded`$venues[[19]]$country
## $`_embedded`$venues[[19]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[19]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[19]]$address
## $`_embedded`$venues[[19]]$address$line1
## [1] "Alter Postweg 30-38"
##
##
## $`_embedded`$venues[[19]]$location
## $`_embedded`$venues[[19]]$location$longitude
## [1] "9.96507"
##
## $`_embedded`$venues[[19]]$location$latitude
## [1] "53.46498"
##
##
## $`_embedded`$venues[[19]]$upcomingEvents
## $`_embedded`$venues[[19]]$upcomingEvents$`_total`
## [1] 1
##
## $`_embedded`$venues[[19]]$upcomingEvents$`mfx-de`
## [1] 1
##
## $`_embedded`$venues[[19]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[19]]$`_links`
## $`_embedded`$venues[[19]]$`_links`$self
## $`_embedded`$venues[[19]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2Zeadk?locale=de-de"
##
##
##
##
## $`_embedded`$venues[[20]]
## $`_embedded`$venues[[20]]$name
## [1] "myticket Jahrhunderthalle"
##
## $`_embedded`$venues[[20]]$type
## [1] "venue"
##
## $`_embedded`$venues[[20]]$id
## [1] "Z598xZC2ZkF6F"
##
## $`_embedded`$venues[[20]]$test
## [1] FALSE
##
## $`_embedded`$venues[[20]]$url
## [1] "https://www.ticketmaster.de/venue/myticket-jahrhunderthalle-frankfurt-am-main-tickets/famjahrkup/701"
##
## $`_embedded`$venues[[20]]$locale
## [1] "de-de"
##
## $`_embedded`$venues[[20]]$images
## $`_embedded`$venues[[20]]$images[[1]]
## $`_embedded`$venues[[20]]$images[[1]]$ratio
## [1] "16_9"
##
## $`_embedded`$venues[[20]]$images[[1]]$url
## [1] "https://media.ticketmaster.eu/germany/a73a35f3fdad97e3e12525ff6a9152db.jpg"
##
## $`_embedded`$venues[[20]]$images[[1]]$width
## [1] 205
##
## $`_embedded`$venues[[20]]$images[[1]]$height
## [1] 115
##
## $`_embedded`$venues[[20]]$images[[1]]$fallback
## [1] FALSE
##
##
##
## $`_embedded`$venues[[20]]$postalCode
## [1] "65929"
##
## $`_embedded`$venues[[20]]$timezone
## [1] "Europe/Berlin"
##
## $`_embedded`$venues[[20]]$city
## $`_embedded`$venues[[20]]$city$name
## [1] "Frankfurt am Main"
##
##
## $`_embedded`$venues[[20]]$country
## $`_embedded`$venues[[20]]$country$name
## [1] "Germany"
##
## $`_embedded`$venues[[20]]$country$countryCode
## [1] "DE"
##
##
## $`_embedded`$venues[[20]]$address
## $`_embedded`$venues[[20]]$address$line1
## [1] "Pfaffenwiese 301"
##
##
## $`_embedded`$venues[[20]]$location
## $`_embedded`$venues[[20]]$location$longitude
## [1] "8.51972"
##
## $`_embedded`$venues[[20]]$location$latitude
## [1] "50.09914"
##
##
## $`_embedded`$venues[[20]]$upcomingEvents
## $`_embedded`$venues[[20]]$upcomingEvents$`_total`
## [1] 4
##
## $`_embedded`$venues[[20]]$upcomingEvents$`mfx-de`
## [1] 4
##
## $`_embedded`$venues[[20]]$upcomingEvents$`_filtered`
## [1] 0
##
##
## $`_embedded`$venues[[20]]$`_links`
## $`_embedded`$venues[[20]]$`_links`$self
## $`_embedded`$venues[[20]]$`_links`$self$href
## [1] "/discovery/v2/venues/Z598xZC2ZkF6F?locale=de-de"
##
##
##
##
##
##
## $`_links`
## $`_links`$first
## $`_links`$first$href
## [1] "/discovery/v2/venues?countryCode=DE&locale=*&page=0&size=20"
##
##
## $`_links`$self
## $`_links`$self$href
## [1] "/discovery/v2/venues?countryCode=DE&locale=*"
##
##
## $`_links`$`next`
## $`_links`$`next`$href
## [1] "/discovery/v2/venues?countryCode=DE&locale=*&page=1&size=20"
##
##
## $`_links`$last
## $`_links`$last$href
## [1] "/discovery/v2/venues?countryCode=DE&locale=*&page=646&size=20"
##
##
##
## $page
## $page$size
## [1] 20
##
## $page$totalElements
## [1] 12934
##
## $page$totalPages
## [1] 647
##
## $page$number
## [1] 0
The response of the API call is a nested list. On the first level there are three items:
_embedded contains the actual data we have requested. The value is a list itself. In this list, again, there is a list with all returned venues (each of which is a list, again)_links contains the url that was used for the API call (excluding the apikey and the domain). In addition, it contains the urls for the first, next and last page.page contains information about the returned page from the data sourcename, the city, the postalCode and address, as well as the url and the longitude and latitude of the venues to a data frame. This data frame should have the following structure:## Rows: 20
## Columns: 7
## $ name <chr> "Gruenspan", "Huxleys Neue Welt", "Kleine Olympiahalle", "Z~
## $ city <chr> "Hamburg", "Berlin", "Munich", "Emmelshausen", "Mülheim", "~
## $ postalCode <dbl> 22767, 10967, 80809, 56281, 45479, 76646, 68766, 44263, 542~
## $ address <chr> "Grosse Freiheit 58", "Hasenheide 107 – 113", "Spiridon-Lou~
## $ url <chr> "http://www.ticketmaster.de/venue/287155", "http://www.tick~
## $ longitude <dbl> 9.958075, 13.421380, 11.550920, 7.556560, 6.874710, 8.59908~
## $ latitude <dbl> 53.55188, 52.48639, 48.17543, 50.15544, 51.42778, 49.12692,~
simplify_list <- function(l) {
#' Simplify list
#'
#' @description This function simplifies the list returned from the request
#' by extracting relevant information for a single venue.
#'
#' @param l list. The list that contains all returned information on a single
#' venue
#'
#' @return The simplified list with the relevant information
l_simplified <- list(
name = l$name,
city = l$city$name,
postalCode = l$postalCode,
address = l$address$line1,
url = l$url,
longitude = l$location$longitude,
latitude = l$location$latitude
)
return(l_simplified)
}
# apply function to each venue and stack in a data frame
lapply(venues_DE_first_page[["_embedded"]][["venues"]], simplify_list) %>%
list.stack() %>%
print_df(n = Inf, scrollbox = TRUE)
page. Did your GET request from exercise (7) return all event locations in Germany? Obviously not - there are of course much more venues in Germany than those contained in this list. Your GET request only yielded the first results page containing the first 20 out of several thousands of venues. Check the API documentation under the section Venue Search. How can you request the venues from the remaining results pages? Iterate over the results pages and perform GET requests for all venues in Germany. After each iteration, extract the seven variables name, city, postalCode, address, url, longitude, and latitude. Join the information in one large data frame. Print the first 10 rows and the shape of the resulting data frame. The resulting data frame should look something like this (note that the exact number of search results may have changed since this document has been last modified):## Rows: 12,671
## Columns: 7
## $ name <chr> "Gruenspan", "Huxleys Neue Welt", "Kleine Olympiahalle", "Z~
## $ city <chr> "Hamburg", "Berlin", "Munich", "Emmelshausen", "Mülheim", "~
## $ postalCode <dbl> 22767, 10967, 80809, 56281, 45479, 76646, 68766, 44263, 542~
## $ address <chr> "Grosse Freiheit 58", "Hasenheide 107 – 113", "Spiridon-Lou~
## $ url <chr> "http://www.ticketmaster.de/venue/287155", "http://www.tick~
## $ longitude <dbl> 9.958075, 13.421380, 11.550920, 7.556560, 6.874710, 8.59908~
## $ latitude <dbl> 53.55188, 52.48639, 48.17543, 50.15544, 51.42778, 49.12692,~
get_venues_in_country <- function(country_code, verbose = TRUE) {
#' Get venues in a country
#'
#' @description Get all venues from ticketmaster via it's API and convert the
#' response to a data frame that contains a row for each venue.
#'
#' @note This functions uses the global variables `apikey` and `url`.
#' In order to make this function work properly, these have to be defined.
#'
#' @param country_code character. The country code to be used as parameter for
#' the API call
#' @param verbose logical. Whether to print status messages to console
#' (default = TRUE)
#'
#' @return Data frame that contains the information on all venues in the
#' country
# define params for API calls (size parameter can be 500 max)
params <- list(
apikey = apikey,
countryCode = country_code,
locale = "*",
size = 500
)
# first API call to get number of pages
n_pages <- content(GET(url = url, query = params))$page$totalPages
# save timestamp of when API call was completed
time_last_apicall <- Sys.time()
# preallocate vector to store single page data frames in
single_page_dfs <- vector(mode = "list", length = n_pages)
# print message
if (verbose) {
cat(
paste("Starting to retrieve venues in country", country_code,
"from", n_pages, "pages...\n")
)
}
# loop through pages
for (page in 1:n_pages) {
# add page number to params dictionary (API starts counting at 0)
params$page <- page - 1
# make sure we do not more than 5 requests per second
time_since_last_apicall <- Sys.time() - time_last_apicall
Sys.sleep(max(0, 1/5 - time_since_last_apicall))
# get venues list from API call response
venues <- content(GET(url = url, query = params))$`_embedded`$venues
# update timestamp of when API call was completed
time_last_apicall <- Sys.time()
# get data frame of all venues on the current page
# and add to single_page_dfs list
single_page_dfs[[page]] <- venues %>%
lapply(simplify_list) %>%
list.stack()
# print message (progress)
percent <- page / n_pages * 100
cat(sprintf('\rProgress: [%-50s] %d%%',
paste(rep('#', percent / 2), collapse = ''),
floor(percent)))
if (page == n_pages)
cat('\n')
}
# stack all data frames in single_page_dfs vector
all_venues_df <- bind_rows(single_page_dfs)
# convert longitude and latitude to numeric (character before)
all_venues_df <- all_venues_df %>%
mutate(across(c("longitude", "latitude"), as.numeric))
# print message
if (verbose) {
cat(paste("Retrieved data for", nrow(all_venues_df), "venues.\n"))
}
# final sleep in case a new request is sent directly after executing
# this function
time_since_last_apicall <- Sys.time() - time_last_apicall
Sys.sleep(max(0, 1/5 - time_since_last_apicall))
return(all_venues_df)
}
# call function for Germany (country_code='DE')
venues_DE <- get_venues_in_country("DE")
## Starting to retrieve venues in country DE from 26 pages...
##
Progress: [# ] 3%
Progress: [### ] 7%
Progress: [##### ] 11%
Progress: [####### ] 15%
Progress: [######### ] 19%
Progress: [########### ] 23%
Progress: [############# ] 26%
Progress: [############### ] 30%
Progress: [################# ] 34%
Progress: [################### ] 38%
Progress: [##################### ] 42%
Progress: [####################### ] 46%
Progress: [######################### ] 50%
Progress: [########################## ] 53%
Progress: [############################ ] 57%
Progress: [############################## ] 61%
Progress: [################################ ] 65%
Progress: [################################## ] 69%
Progress: [#################################### ] 73%
Progress: [###################################### ] 76%
Progress: [######################################## ] 80%
Progress: [########################################## ] 84%
Progress: [############################################ ] 88%
Progress: [############################################## ] 92%
Progress: [################################################ ] 96%
Progress: [##################################################] 100%
## Retrieved data for 12934 venues.
# show data frame (first 10 rows only)
print_df(venues_DE)
| name | city | postalCode | address | url | longitude | latitude |
|---|---|---|---|---|---|---|
| Grosse Freiheit 36 | Hamburg | 22767 | Grosse Freiheit 36 | http://www.ticketmaster.de/venue/287636 | 9.957905 | 53.55119 |
| Gruenspan | Hamburg | 22767 | Grosse Freiheit 58 | http://www.ticketmaster.de/venue/287155 | 9.958075 | 53.55188 |
| Huxleys Neue Welt | Berlin | 10967 | Hasenheide 107 – 113 | http://www.ticketmaster.de/venue/286842 | 13.421380 | 52.48639 |
| Zentrum am Park | Emmelshausen | 56281 | Rhein-Mosel-Straße 45 | https://www.ticketmaster.de/venue/zentrum-am-park-emmelshausen-tickets/elszentrum/701 | 7.556560 | 50.15544 |
| Stadthalle (Theatersaal) | Mülheim | 45479 | Theodor-Heuss-Platz 1 | https://www.ticketmaster.de/venue/stadthalle-theatersaal--mulheim-tickets/mrustadtth/711 | 6.874710 | 51.42778 |
| Schlossgarten | Bruchsal | 76646 | Schloss Bruchsal | https://www.ticketmaster.de/venue/schlossgarten-bruchsal-tickets/bruparkanl/701 | 8.599080 | 49.12692 |
| Stadthalle | Hockenheim | 68766 | Rathausstraße 3 | https://www.ticketmaster.de/venue/stadthalle-hockenheim-tickets/hokstadtha/701 | 8.549080 | 49.31849 |
| FZW | Dortmund | 44263 | Ritterstraße 20 | https://www.ticketmaster.de/venue/fzw-dortmund-tickets/dorfzw/701 | 7.450100 | 51.51481 |
| Arena Trier | Trier | 54292 | Fort-Worth-Platz 1 | https://www.ticketmaster.de/venue/arena-trier-trier-tickets/triarena/701 | 6.664260 | 49.77183 |
| Eissporthalle | Memmingen | 87700 | Hühnerbergstraße 19 | https://www.ticketmaster.de/venue/eissporthalle-memmingen-tickets/mmmeisspor/701 | 10.162930 | 47.97999 |
# print shape
print(dim(venues_DE))
## [1] 12934 7
plot_venues <- function(
venues_df,
country,
lon_lat_ranges = NULL,
verbose = TRUE) {
#' Plot venues in a country
#'
#' @description Plot venues in a specific country as points on a map.
#'
#' @param venues_df tibble. A data frame with the venue data
#' (longitude and latitude have to be numeric)
#'
#' @param country character. The name of the country, needed for retrieving the
#' base map
#' @param lon_lat_ranges list. A list that contains the ranges for longitude and
#' latitude to clip the data, only used if not NULL
#' (default = NULL)
#' @param verbose logical. Whether it should be printed how many venues are
#' not plotted for different reasons
#' (default = TRUE)
# print number of missing values
if (verbose) {
# compute number of missing values
n_NAs <- venues_df %>%
filter(is.na(longitude) | is.na(latitude)) %>%
nrow()
# print message
print(paste(n_NAs, "venues are not plotted due to missing coordinates."))
}
# filter data for longitude and latitude ranges (only if provided)
if (!is.null(lon_lat_ranges)) {
# for print message original number of venues is needed
if (verbose) {
n_venues_orig <- nrow(venues_df)
}
# filter venues by coordinate ranges
venues_df <- venues_df %>%
filter(
longitude >= lon_lat_ranges$longitude[1],
longitude <= lon_lat_ranges$longitude[2],
latitude >= lon_lat_ranges$latitude[1],
latitude <= lon_lat_ranges$latitude[2])
# print message
if (verbose) {
print(paste(
n_venues_orig - nrow(venues_df) - n_NAs,
"venues are not plotted due to faulty coordinates."))
}
}
# create plot
ggplot() +
# map
borders("world", country, colour = "black", fill = "grey90") +
# venues as points
geom_point(aes(x = venues_df$longitude, y = venues_df$latitude),
color = "darkblue", alpha = 0.3, size = 0.3) +
# remove ticks, labels, spines etc
theme_void() +
# map projection
coord_quickmap() +
# labels
labs(title = paste("Event locations across", country),
caption = "Source: ticketmaster.com") +
# theme adjustments
theme(title = element_text(size=8, face='bold'),
plot.title = element_text(hjust = 0.5),
plot.caption = element_text(face = "italic"))
}
# call plotting function without specifying the extreme points
plot_venues(venues_df = venues_DE, country = "Germany")
## [1] "4407 venues are not plotted due to missing coordinates."
NA where the value of longitude is outside the range (5.866, 15.042) or where the value of latitude is outside the range (47.270, 55.059) (these coordinate ranges have been derived from the extreme points of Germany as listed on Wikipedia (see here). For extreme points of other countries, see here).# call plotting function and pass extreme points
plot_venues(
venues_df = venues_DE,
country = "Germany",
lon_lat_ranges = list(
longitude = c(5.866, 15.042),
latitude = c(47.270, 55.059)
)
)
## [1] "4407 venues are not plotted due to missing coordinates."
## [1] "89 venues are not plotted due to faulty coordinates."
# call function for Germany (country_code='DE')
venues_NL <- get_venues_in_country("NL")
## Starting to retrieve venues in country NL from 5 pages...
##
Progress: [########## ] 20%
Progress: [#################### ] 40%
Progress: [############################## ] 60%
Progress: [######################################## ] 80%
Progress: [##################################################] 100%
## Retrieved data for 2162 venues.
# show data frame (first 10 rows only)
print_df(venues_NL, scrollbox = TRUE)
# print shape
print(dim(venues_NL))
## [1] 2162 7
# call plotting function and pass extreme points
plot_venues(
venues_df = venues_NL,
country = "Netherlands",
lon_lat_ranges = list(
longitude = c(3.355, 7.223333333333334),
latitude = c(50.750166666666665, 53.553)
)
)
## [1] "23 venues are not plotted due to missing coordinates."
## [1] "18 venues are not plotted due to faulty coordinates."